//Copyright (c) Microsoft Corporation.  All rights reserved.

using System;
using System.Collections.Generic;
using System.Text;
using Eas.WebCrawler.Interfaces;
using Eas.WebCrawler.Model.Core;

namespace Eas.WebCrawler.Model.Events {
    internal interface EventReporter : Eas.WebCrawler.Model.Core.WorkerComponent {

        void ReportStarting();
        void ReportStopped();
        void ReportUnpausing();
        void ReportPaused();

        void ReportTrace(TraceLevel level, ProcessingState state, string message, params object[] arguments);
        
        void ReportError(ProcessingState state, string message, System.Exception exception);

        void ReportWebRequestStarted(ProcessingState state);
        void ReportWebResponseFailure(ProcessingState state, int responseCode, string message);
        void ReportRequestComplete(ProcessingState state, TemporaryStorage storage);
        
    }
}
